package com.example.jobback.util;

/**
 * @ClassName: RedisConstants
 * @Description: redis中key常量存储工具类
 * @Author: lhb
 * @Date: 2025/5/10
 */

public class RedisConstants {
    /**
     * @Description: 求职者key
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final String SEEKER_KEY = "web:seeker:";
    /**
     * @Description: 求职者ttl
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final Long SEEKER_TTL = 2L;

    /**
     * @Description: 招聘者key
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final String RECRUITER_KEY = "web:recruiter:";

    /**
     * @Description: 招聘者ttl
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final Long RECRUITER_TTL = 2L;


    /**
     * @Description: 管理员key
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final String MANAGER_KEY = "web:manager:";

    /**
     * @Description: 管理员ttl
     * @Author lhb
     * @CreateTime 2025/5/14 15:30
     */
    public static final Long MANAGER_TTL = 2L;


    /**
     * @Description: 公司key
     * @Author lhb
     * @CreateTime 2025/5/21 15:00
     */
    public static final String COMPANY_KEY="web:company:";

    /**
     * @Description: 公司ttl
     * @Author lhb
     * @CreateTime 2025/5/21 15:00
     */
    public static final Long COMPANY_TTL=2L;


    /**
     * @Description: 手机号验证码key
     * @Author lhb
     * @CreateTime 2025/5/14 15:31
     */
    public static final String PHONE_KEY="web:phoneAes:";

    /**
     * @Description: 手机号验证码ttl
     * @Author lhb
     * @CreateTime 2025/5/14 15:31
     */
    public static final Long PHONE_TTL=3L;

    /**
     * @Description: 招聘用户注册存储电话号码的key
     * @Author lhb
     * @CreateTime 2025/5/21 15:14
     */
    public static final String RECRUITER_REGISTER_PHONE_KEY="web:recruiter:register:code:";

    /**
     * @Description: 招聘用户注册存储电话号码的ttl
     * @Author lhb
     * @CreateTime 2025/5/21 15:14
     */
    public static final Long RECRUITER_REGISTER_PHONE_TTL=1L;

    /**
     * @Description: 待审核招聘者key,value是phoneAes的set集合
     * @Author lhb
     * @CreateTime 2025/5/17 16:54
     */
    public static final String VERIFY_RECRUITER_REGISTER_USERS_KEY="web:verify:recruiter:users:";


    /**
     * @Description: 待审核招聘者信息的key
     * @Author lhb
     * @CreateTime 2025/5/17 17:15
     */
    public static final String VERIFY_RECRUITER_REGISTER_USER_KEY="web:verify:recruiter:phoneAes:";





    /**
     * @Description: 需要公司审核的发布岗位key,后缀是公司id,存储code
     * @Author lhb
     * @CreateTime 2025/5/30 17:51
     */
    public static final String VERIFY_RECRUITER_PUBLISH_POSITION_COM_CODE_KEY="web:verify:recruiter:pubPosition:com:";

    /**
     * @Description: 需要管理员审核的岗位key,存储code
     * @Author lhb
     * @CreateTime 2025/5/31 14:16
     */
    public static final String VERIFY_RECRUITER_PUBLISH_POSITION_MANAGER_CODE_KEY="web:verify:recruiter:pubPosition:manager";


    /**
     * @Description: 个人发布岗位的key，存储code
     * @Author lhb
     * @CreateTime 2025/5/31 14:19
     */
    public static final String VERIFY_RECRUITER_PUBLISH_POSITION_RECRUITER_CODE_KEY="web:verify:recruiter:pubPosition:recruiter:";


    /**
     * @Description: 存储岗位信息
     * @Author lhb
     * @CreateTime 2025/5/30 20:08
     */
    public static final String VERIFY_RECRUITER_PUBLISH_POSITION_KEY="web:verify:recruiter:pubPosition:code:";





    /**
     * @Description: key是公司id，value是职位id集合
     * @Author lhb
     * @CreateTime 2025/6/20 11:14
     */
    public static final String VERIFY_RECRUITER_UPDATE_POSITION_COM_ID_KEY="web:verify:recruiter:updatePosition:com:";

    /**
     * @Description: key是用户id，value是职位id集合
     * @Author lhb
     * @CreateTime 2025/6/20 11:15
     */
    public static final String VERIFY_RECRUITER_UPDATE_POSITION_RECRUITER_ID_KEY="web:verify:recruiter:updatePosition:recruiter:";

    /**
     * @Description: value是职位id集合
     * @Author lhb
     * @CreateTime 2025/6/20 11:15
     */
    public static final String VERIFY_RECRUITER_UPDATE_POSITION_MANAGER_ID_KEY="web:verify:recruiter:updatePosition:manager";


    /**
     * @Description: 存储更新岗位信息
     * @Author lhb
     * @CreateTime 2025/5/30 20:08
     */
    public static final String VERIFY_RECRUITER_UPDATE_POSITION_KEY="web:verify:recruiter:updatePosition:positionId:";





    /**
     * @Description: 省份key
     * @Author lhb
     * @CreateTime 2025/7/5 10:56
     */
    public static  final String PROVINCE_KEY="web:provinces";


    /**
     * @Description: 省份ttl
     * @Author lhb
     * @CreateTime 2025/7/5 10:56
     */
    public static final Long PROVINCE_TTL=1L;


    /**
     * @Description: 城市key
     * @Author lhb
     * @CreateTime 2025/7/5 11:12
     */
    public static  final String CITY_PROVINCE_ID_KEY="web:city:provinceId:";

    /**
     * @Description: 城市ttl
     * @Author lhb
     * @CreateTime 2025/7/5 12:28
     */
    public static final Long CITY_PROVINCE_ID_TTL=1L;


    /**
     * @Description: 公司行业key
     * @param null
     * @return null
     * @Author lhb
     * @CreateTime 2025/7/5 16:55
     */
    public static  final String COMPANY_INDUSTRY_KEY="web:companyIndustries";

    /**
     * @Description: 公司行业ttl
     * @Author lhb
     * @CreateTime 2025/7/5 16:55
     */
    public static final Long COMPANY_INDUSTRY_TTL=1L;



    /**
     * @Description: 职位行业key
     * @Author lhb
     * @CreateTime 2025/7/6 13:54
     */
    public static  final String POSITION_INDUSTRY_KEY="web:positionIndustries";

    /**
     * @Description: 职位行业ttl
     * @Author lhb
     * @CreateTime 2025/7/6 13:54
     */
    public static final Long POSITION_INDUSTRY_TTL=1L;



    /**
     * @Description: 职位类别key
     * @Author lhb
     * @CreateTime 2025/7/6 13:54
     */
    public static  final String POSITION_CATEGORY_INDUSTRY_ID_KEY="web:position:category:industryId:";

    /**
     * @Description: 职位类别ttl
     * @Author lhb
     * @CreateTime 2025/7/6 13:55
     */
    public static final Long POSITION_CATEGORY_INDUSTRY_ID_TTL=1L;


    /**
     * @Description: 职位名称key
     * @Author lhb
     * @CreateTime 2025/7/6 13:55
     */
    public static  final String POSITION_NAME_CATEGORY_ID_KEY="web:position:name:categoryId:";

    /**
     * @Description: 职位ttl
     * @Author lhb
     * @CreateTime 2025/7/6 13:55
     */
    public static final Long POSITION_NAME_CATEGORY_ID_TTL=1L;

    /**
     * @Description: 热门岗位城市
     * @Author lhb
     * @CreateTime 2025/7/23 15:57
     */
    public static  final String HOT_POSITION_CITIES_KEY="web:hot:position:cities";

    /**
     * @Description: 热门企业城市
     * @Author lhb
     * @CreateTime 2025/7/23 15:57
     */
    public static  final String HOT_COMPANY_CITIES_KEY="web:hot:company:cities";

    /**
     * @Description: 公司信息redission分布式锁的key
     * @Author lhb
     * @CreateTime 2025/10/6 23:22
     */
    public static  final String LOCK_COMPANY_KEY="web:lock:company:";

    /**
     * @Description: 公司信息map的field
     * @Author lhb
     * @CreateTime 2025/10/6 23:34
     */
    public static final String COMPANY_KEY_FIELD_COM = "company";
    
    /**
     * @Description: 解决缓存穿透时，公司信息map的filed
     * @Author lhb
     * @CreateTime 2025/10/6 23:34
     */
    public static final String COMPANY_KEY_FIELD_NULL = "isNull";

    /**
     * @Description: 解决缓存穿透，isNull的value
     * @Author lhb
     * @CreateTime 2025/10/6 23:34
     */
    public static final String COMPANY_KEY_NULL_VALUE = "true";
    

    /**
     * @Description: 管理员注册审核key
     * @Author lhb
     * @CreateTime 2025/5/14 15:34
     */
    public static final String VERIFY_MANAGER_KEY="web:verify:manager:";
    
    /**
     * @Description: 管理员注册审核ttl
     * @Author lhb
     * @CreateTime 2025/5/14 15:35
     */
    public static final Long VERIFY_MANAGER_TTL=3L;
}
